-
-
Notifications
You must be signed in to change notification settings - Fork 2
feat: Airflow 3.0.1 (experimental) #630
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First batch, will do some more testing.
min: Some(Quantity("1".into())), | ||
max: Some(Quantity("2".into())), | ||
}, | ||
MemoryLimitsFragment { | ||
limit: Some(Quantity("2Gi".into())), | ||
limit: Some(Quantity("3Gi".into())), | ||
runtime_limits: NoRuntimeLimitsFragment {}, | ||
}, | ||
), | ||
AirflowRole::Webserver => ( | ||
CpuLimitsFragment { | ||
min: Some(Quantity("500m".into())), | ||
min: Some(Quantity("1".into())), | ||
max: Some(Quantity("2".into())), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a docs part for default ressources (outdated) https://github.com/stackabletech/airflow-operator/blob/feat/airflow-3.0.0/docs/modules/airflow/pages/usage-guide/storage-resources.adoc that could be updated :)
env.insert("AIRFLOW__API_AUTH__JWT_SECRET".into(), EnvVar { | ||
name: "AIRFLOW__API_AUTH__JWT_SECRET".into(), | ||
value: Some(JWT_KEY.clone()), | ||
..Default::default() | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will change if the operator restarts? That will invalidate access tokens, user sessions etc.? Maybe it makes sense to auto generate (or provide) a secret? Similar to the nifi sensitive properties key ?
command.extend(vec![ | ||
"prepare_signal_handlers".to_string(), | ||
format!("containerdebug --output={STACKABLE_LOG_DIR}/containerdebug-state.json --loop &"), | ||
"airflow api-server &".to_string(), | ||
]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could be templated for the process (api-server, celery worker...) and reused?
{% if test_scenario['values']['airflow-latest'].find(",") > 0 %} | ||
custom: "{{ test_scenario['values']['airflow-latest'].split(',')[1] }}" | ||
productVersion: "{{ test_scenario['values']['airflow-latest'].split(',')[0] }}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it on purpose to only test this (and others) for 3.x?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that one should probably be for all airflow versions, yes, as it is new functionality.
{% if test_scenario['values']['airflow'].find(",") > 0 %} | ||
- script: | | ||
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group automatic-log-config --airflow-version "{{ test_scenario['values']['airflow'].split(',')[0] }}" | ||
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group custom-log-config --airflow-version "{{ test_scenario['values']['airflow'].split(',')[0] }}" | ||
{% else %} | ||
- script: | | ||
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group automatic-log-config --airflow-version "{{ test_scenario['values']['airflow'] }}" | ||
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group custom-log-config --airflow-version "{{ test_scenario['values']['airflow'] }}" | ||
{% endif %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not much nicer, but less repetition (could be used elsewhere as well) :)
{% if test_scenario['values']['airflow'].find(",") > 0 %} | |
- script: | | |
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group automatic-log-config --airflow-version "{{ test_scenario['values']['airflow'].split(',')[0] }}" | |
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group custom-log-config --airflow-version "{{ test_scenario['values']['airflow'].split(',')[0] }}" | |
{% else %} | |
- script: | | |
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group automatic-log-config --airflow-version "{{ test_scenario['values']['airflow'] }}" | |
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group custom-log-config --airflow-version "{{ test_scenario['values']['airflow'] }}" | |
{% endif %} | |
{% if test_scenario['values']['airflow'].find(",") > 0 %} | |
{% set airflow_version = test_scenario['values']['airflow'].split(',')[0] %} | |
{% else %} | |
{% set airflow_version = test_scenario['values']['airflow'] %} | |
{% endif %} | |
- script: | | |
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group automatic-log-config --airflow-version "{{ airflow_version }}" | |
kubectl exec -n $NAMESPACE test-airflow-python-0 -- python /tmp/health.py --role-group custom-log-config --airflow-version "{{ airflow_version }}" |
Description
Related to #618
Most changes in this PR are due to the fact that the API has changed and both old and new versions need to be available for the tests. Code changes can be summarised as:
N.B. this PR does not cover updates to OPA-Auth (covered separately).
Definition of Done Checklist
Author
CRD changes approvedCRD documentation for all fields, following the [style guide]Reviewer
Acceptance